#pragma once

#include <AST/expr/literal/LiteralAST.hpp>

class StringPtr : public Literal {
  public:
    const string val;

    StringPtr(string val);

    virtual Type *getType() override;

    virtual Constant *codegen() override;

    static Constant *getDefault();

    friend class graphviz::GraphGenerator;

    virtual VisitResult accept(ASTVisitor &visitor) const override {
        return visitor.visitStringPtrAST(this);
    }
};